package handler

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"house/api/resp"
	"house/internal/dao"
	"house/internal/model"
	"log"
	"path/filepath"
	"strings"
)

// 上传房源图片
func UploadHouseImage(c *gin.Context) {
	var user model.User
	dao.GetOneById(c.GetUint("userId"), &user)
	if !(user.UType == 2 || user.UType == 3) {
		resp.Error(c, 10000, "权限不足,禁止上传", nil)
		return
	}

	//文件
	file, err := c.FormFile("file")
	if err != nil {
		resp.Error(c, 10000, "图片上传失败", nil)
		return
	}
	log.Println(file.Filename)

	dst := "D:\\gowork\\src\\house\\static\\upload\\" + file.Filename
	// 上传文件至指定的完整文件路径
	err = c.SaveUploadedFile(file, dst)
	if err != nil {
		resp.Error(c, 10000, "文件路径保存失败", nil)
		return
	}
	//返回
	resp.Success(c, fmt.Sprintf("http://localhost:8080/upload/%s", file.Filename))

}

// 上传房源视频
func UploadHouseVideo(c *gin.Context) {
	var user model.User
	dao.GetOneById(c.GetUint("userId"), &user)
	if !(user.UType == 2 || user.UType == 3) {
		resp.Error(c, 10000, "权限不足,禁止上传", nil)
		return
	}
	//文件
	file, err := c.FormFile("file")
	if err != nil {
		resp.Error(c, 10000, "图片上传失败", nil)
		return
	}
	log.Println(file.Filename)
	//格式
	ext := strings.ToLower(filepath.Ext(file.Filename))
	suffix := map[string]bool{
		".mp4": true,
	}
	if suffix[ext] == false {
		resp.Error(c, 10000, "视频格式错误，仅允许上传mp4格式", nil)
		return
	}
	//大小
	if file.Size > 200*1024*1024 {
		resp.Error(c, 10000, "视频大小不得超过200MB", nil)
		return
	}

	dst := "D:\\gowork\\src\\house\\static\\upload\\" + file.Filename
	// 上传文件至指定的完整文件路径
	err = c.SaveUploadedFile(file, dst)
	if err != nil {
		resp.Error(c, 10000, "文件路径保存失败", nil)
		return
	}
	//返回
	resp.Success(c, fmt.Sprintf("http://localhost:8080/upload/%s", file.Filename))

}
